// pages/function/sub/forgetpwd.js
const APP = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isSubmitDisabled:false,
    isSubmitLoading:false,
    //发送验证码
    dataInputVal:'',
    dataSmsTimer:null,
    dataSmsCounter:0,
    dataSmsText:'',
    dataIsCounter:false,
    dataAuthType:[
      {txt:'请选择身份',val:'0'},{txt:'学生',val:'1'},{txt:'老师',val:'2'}
    ],
    dataAuthIdx:0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.initSms();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

   /**
   * 生命周期回调—监听页面卸载
   */
  onUnload: function(){
    if(null != this.data.dataSmsTimer){
      clearInterval(this.data.dataSmsTimer);
    }
  },
 
  //逻辑区域

  bindAuthChange: function(event){
    this.setData({
      dataAuthIdx:event.detail.value
    });
  },

  bindSubmitForm:function(eventhandle){
    let _this = this;
    let formvalues = eventhandle.detail.value;

    if (_this.data.dataAuthIdx == 0){
      APP.apptool.showToastInfo('请选择身份！');
      return;
    }
    formvalues.usertype = _this.data.dataAuthIdx;

    if (formvalues.mobilephone.length != 11) {
      APP.apptool.showToastInfo('请输入11位手机号码');
      return;
    }
    if (formvalues.validcode.length < 1){
      APP.apptool.showToastInfo('输入验证码！');
      return;
    }
    if (formvalues.userpwd.length < 8 || formvalues.userpwd.length>12){
      APP.apptool.showToastInfo('请输入8至12位有效字符的密码！');
      return;
    }
    //禁用操作
    _this.setData({
      isSubmitDisabled:true,
      isSubmitLoading:true,
    });
    let param = formvalues;
    APP._post('/miniprogram/BasicOfflineAction/findPwd', param, null, function (res) {
      //执行成功
      if (res.caCode === APP.appconfig.fwcode.successed) {
        APP.apptool.showToastInfo('密码设置成功！请使用新密码登录！',null,2000,function(res){
          wx.navigateBack({
            delta: 1,
          });
        });
      } else {
        APP.apptool.showToastInfo(res.caMsg);
      }
    }, function (res) {
      //执行失败
    }, function (res) {
      //执行完成
      //恢复操作
      _this.setData({
        isSubmitDisabled: false,
        isSubmitLoading: false
      });
    });
  },
  
  initSms:function(){
    this.setData({
      dataSmsCounter:120,
      dataSmsText:'发送验证码',
      dataIsCounter:false
    });    
  },

  startSms:function(){
    let _this = this;
    if(!_this.data.dataIsCounter){
      _this.setData({
        dataIsCounter:true,
        dataSmsText:'剩余'+_this.data.dataSmsCounter+'秒',
        dataSmsTimer:setInterval(function(){
          let _that = _this;
          _that.data.dataSmsCounter--;

          if(_that.data.dataSmsCounter < 1 ){
            _that.initSms();
            if(null != _that.data.dataSmsTimer){
              clearInterval(_that.data.dataSmsTimer);
            }
          }else{
            _that.setData({
              dataSmsText:'剩余'+_that.data.dataSmsCounter+'秒',
            });
          }
        }, 1000),
      });
    }else{
      APP.apptool.showToastInfo('计时中禁止点击！');
    }
  },

  keyInput:function(event){
    this.setData({
      dataInputVal:event.detail.value
    })
  },

  clickSms: function(event){
    let _this = this;

    if(_this.data.dataIsCounter){
      return;
    }

    if (_this.data.dataAuthIdx == 0){
      APP.apptool.showToastInfo('请选择身份！');
      return;
    }

    if (_this.data.dataInputVal.length != 11) {
      APP.apptool.showToastInfo('请输入11位手机号码');
      return;
    }

    APP._post('/miniprogram/BasicOfflineAction/sendSms', {
      usertype:_this.data.dataAuthIdx,
      mobilephone:_this.data.dataInputVal,
      action:'findpwd'
    }, null, function (res) {
      //执行成功
      if (res.caCode === APP.appconfig.fwcode.successed) {
        APP.apptool.showToastInfo(res.caMsg);
        _this.startSms();
      } else {
        APP.apptool.showToastInfo(res.caMsg);
      }
    }, function (res) {
      //执行失败
    }, function (res) {
      //执行完成
      //恢复操作
      _this.setData({
        isSubmitDisabled: false,
        isSubmitLoading: false
      });
    });
  },

})